home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / 86xx / 8603.d64 / umformer print-s (.txt) < prev    next >
Commodore BASIC  |  1995-03-30  |  10KB  |  390 lines

  1. 10 V=53248
  2. 20 POKEV+21,0 : POKEV+29,0 : POKEV+23,0 : POKEV+16,0
  3. 30 PRINTCHR$(142);CHR$(8)
  4. 40 POKE53280,11:POKE53281,12:POKE646,0
  5. 50 PRINT"[147]           PRINT-SHOP-UMFORMER          [146]";
  6. 60 PRINT"                                        [146]";
  7. 70 PRINT"        VON ANDREAS NOTHAFT 1985        [146]";
  8. 80 PRINT"  0 [146] - PROGRAMM-ENDE"
  9. 90 PRINT"  1 [146] - INFORMATIONEN"
  10. 100 PRINT"  2 [146] - DIRECTORY ANZEIGEN"
  11. 110 PRINT"----------------------------------------";
  12. 120 PRINT"  3 [146] - 1 HIRES-SPRITE "
  13. 130 PRINT"  4 [146] - 1 MULTI-C-SPRITE (NORMALGROESSE)"
  14. 140 PRINT"  5 [146] - 2 HIRES-SPRITES (NEBENEINANDER)"
  15. 150 PRINT"  6 [146] - 2 HIRES-SPRITES (UEBEREINADER)"
  16. 160 PRINT"  7 [146] - 4 HIRES-SPRITES"
  17. 170 GETG$:IFG$=""THEN170
  18. 180 IF G$="0" THEN 270
  19. 190 IF G$="1" THEN 310
  20. 200 IF G$="2" THEN 3730
  21. 210 IF G$="3" THEN 520
  22. 220 IF G$="4" THEN 910
  23. 230 IF G$="5" THEN 1810
  24. 240 IF G$="6" THEN 2140
  25. 250 IF G$="7" THEN 2600
  26. 260 GOTO 170
  27. 270 PRINT"[147]SIND SIE SICHER ??? (J/N)"
  28. 280 GET G$:IFG$="" THEN 280
  29. 290 IFG$="J" THEN SYS 64738
  30. 300 RUN
  31. 310 REM ******************************
  32. 320 REM *****   INFORMATIONEN    *****
  33. 330 REM ******************************
  34. 340 A$="INFORMATIONEN":GOSUB3090
  35. 350 PRINT" DIESES PROGRAMM VERAENDERT DIE DATEN"
  36. 360 PRINT" VON SPRITES SO, DASS SIE VON DEM"
  37. 370 PRINT" PROGRAMM ";CHR$(34);"PRINT SHOP";CHR$(34);" VERWENDET"
  38. 380 PRINT" WERDEN KOENNEN."
  39. 390 PRINT" AUFGRUND DER AUFLOESUNGS-PUNKTE"
  40. 400 PRINT" FUNKTIONIERT DIESES PROGRAMM NUR MIT"
  41. 410 PRINT" DER PRINT SHOP VERSION FUER"
  42. 420 PRINT"     NICHT COMMODORE DRUCKER[146]."
  43. 430 PRINT" DIE EINZULESENDEN DATEN KOENNEN"
  44. 440 PRINT" ENTWEDER AUS EINER SEQUENTIELLEN DATEI"
  45. 450 PRINT" ODER AUS EINEM PROGRAMM-FILE BESTEHEN."
  46. 460 PRINT" ES WERDEN JEWEILS NUR DIE ERSTEN "
  47. 470 PRINT" 63 BYTES GELESEN."
  48. 480 PRINT"   VIEL ERFOLG MIT DIESEM PRG WUENSCHT"
  49. 490 PRINT"     ANDREAS,  THORSTEN UND MATTHIAS    [146]"
  50. 500 GOSUB3150
  51. 510 RUN
  52. 520 REM ******************************
  53. 530 REM 1 HIRES-SPRITE (NORMALGROESSE)
  54. 540 REM ******************************
  55. 550 AZ=1:GOSUB2940
  56. 560 A$="1 HIRES-SPRITE (NORMALGROESSE)"
  57. 570 GOSUB3090 :REM NAME-AMZEIGEN
  58. 580 POKEV+21,3
  59. 590 POKE2040,192:POKE2041,192
  60. 600 POKEV,126:POKEV+1,140
  61. 610 POKEV+2,170:POKEV+3,130
  62. 620 POKEV+29,2:POKEV+23,2
  63. 630 POKEV+39,15:POKEV+40,15
  64. 640 GOSUB3640
  65. 650 POKEV+21,0
  66. 660 GOSUB3050: REM FILL MIT 00
  67. 670 AN=12288 : A1=22584 : Z1=0 :Z=0:S1=00:B=0
  68. 680 PRINT"";
  69. 690 FORTH=0TO20:PRINTTH:NEXT:PRINT"";
  70. 700 FOR P=1 TO 21
  71. 710 PRINT"+"
  72. 720 FOR M=1 TO 3
  73. 730 A=PEEK(AN+Z)
  74. 740 FOR N=21 TO 0 STEP -3
  75. 750 IF A>=2^(N/3) THEN B=B+2^(N+2):B=B+2^(N+1):B=B+2^N :A=A-2^(N/3)
  76. 760 NEXT N : Z=Z+1
  77. 770 C=INT(B/65536):D=INT((B-(C*65536))/256):E=B-(C*65536+D*256)
  78. 780 B=0
  79. 790 POKEA1+Z1+S1,C : POKEA1+Z1+S1+11,C
  80. 800 POKEA1+Z1+S1+1,D:POKEA1+Z1+S1+11+1,D
  81. 810 POKEA1+Z1+S1+2,E:POKEA1+Z1+S1+11+2,E
  82. 820 Z1=Z1+3
  83. 830 NEXT M : S1=S1+22 : Z1=0
  84. 840 NEXT P
  85. 850 GOSUB3220:REM SAVE
  86. 860 GOSUB3360:REM FEHLER ???
  87. 870 IF A=0 THEN RUN
  88. 880 PRINT"  DISK-ERROR [146]: ";A;A$;B;C
  89. 890 GOSUB3150
  90. 900 GOTO850
  91. 910 REM ******************************
  92. 920 REM *1 MULTI-C-SPRITE (NORMALGR.)*
  93. 930 REM ******************************
  94. 940 AZ=1:GOSUB2940
  95. 950 A$="1 MULTI-C-SPRITE (NORMALGR.)"
  96. 960 GOSUB3090
  97. 970 GOSUB3050
  98. 980 POKE2040,192
  99. 990 POKE2041,192
  100. 1000 V=53248
  101. 1010 POKEV+21,3
  102. 1020 POKEV,220:POKEV+1,185
  103. 1030 POKEV+2,5:POKEV+3,175:POKEV+16,2
  104. 1040 POKEV+28,3:POKEV+29,2:POKEV+23,2
  105. 1050 C1=15 : C2=11 : C3=00 : C4=12
  106. 1060 POKEV+33,C1 : POKEV+37,C2 : POKEV+38,C3 : POKEV+39,C4 : POKEV+40,C4
  107. 1070 PRINT"":FORI=1 TO 40 :PRINT" ";:NEXT
  108. 1080 PRINT"":FORI=1 TO 40 :PRINT" ";:NEXT
  109. 1090 A$="1 MULTI-C-SPRITE (NORMALGR.)":GOSUB3090
  110. 1100 PRINT"  F1 [146] = MULTI-COLOR-FARBE #01"
  111. 1110 PRINT"  F3 [146] = MULTI-COLOR-FARBE #02"
  112. 1120 PRINT"  F5 [146] = MULTI-COLOR-FARBE #03"
  113. 1130 PRINT"  F7 [146] = MULTI-COLOR-FARBE #04"
  114. 1140 PRINT"  F8 [146] = ZURUECK INS MENUE"
  115. 1150 PRINT" RETURN = WEITER IM PROGRAMM"
  116. 1160 GET G$:IFG$=""THEN1160
  117. 1170 IF G$=CHR$(133) THEN GOSUB 1240
  118. 1180 IF G$=CHR$(134) THEN GOSUB 1290
  119. 1190 IF G$=CHR$(135) THEN GOSUB 1340
  120. 1200 IF G$=CHR$(136) THEN GOSUB 1390
  121. 1210 IFG$=CHR$(140)THENRUN
  122. 1220 IF G$<>CHR$(13) THEN 1160
  123. 1230 GOTO1440
  124. 1240 IF C1=0  THEN C1=11 : GOTO1280
  125. 1250 IF C1=11 THEN C1=12 : GOTO1280
  126. 1260 IF C1=12 THEN C1=15 : GOTO1280
  127. 1270 IF C1=15 THEN C1=0
  128. 1280 POKEV+33,C1:RETURN
  129. 1290 IF C2=0  THEN C2=11 : GOTO1330
  130. 1300 IF C2=11 THEN C2=12 : GOTO1330
  131. 1310 IF C2=12 THEN C2=15 : GOTO1330
  132. 1320 IF C2=15 THEN C2=0
  133. 1330 POKEV+37,C2:RETURN
  134. 1340 IF C3=0  THEN C3=11 : GOTO1380
  135. 1350 IF C3=11 THEN C3=12 : GOTO1380
  136. 1360 IF C3=12 THEN C3=15 : GOTO1380
  137. 1370 IF C3=15 THEN C3=0
  138. 1380 POKEV+38,C3:RETURN
  139. 1390 IF C4=0  THEN C4=11 : GOTO1430
  140. 1400 IF C4=11 THEN C4=12 : GOTO1430
  141. 1410 IF C4=12 THEN C4=15 : GOTO1430
  142. 1420 IF C4=15 THEN C4=0
  143. 1430 POKEV+39,C4:POKEV+40,C4:RETURN
  144. 1440 POKEV+21,0:POKEV+28,0
  145. 1450 POKE53280,11:POKE53281,12:POKE646,0
  146. 1460 GOSUB3090
  147. 1470 A1=22584:Z=0:AN=12288:S1=0
  148. 1480 PRINT"";
  149. 1490 FORTH=0TO20:PRINTTH:NEXT:PRINT"";
  150. 1500 FORP=0TO20:FORK=0TO2:F$="":FF$=""
  151. 1520 A=PEEK(AN+(P*3)+K)
  152. 1530 FORM=3TO0STEP-1
  153. 1540 FORN=3TO0STEP-1
  154. 1550 IFA>=2^(M*2+N)THENA=A-2^(M*2+N):B=B+2^N
  155. 1560 NEXTN
  156. 1570 IFB=0THENF=C1
  157. 1580 IFB=1THENF=C2
  158. 1590 IFB=2THENF=C4
  159. 1600 IFB=3THENF=C3
  160. 1610 IFF=0THENF$=F$+"111111":FF$=FF$+"111111"
  161. 1620 IFF=11THENF$=F$+"110110"                       :FF$=FF$+"011011"
  162. 1630 IFF=12THENF$=F$+"111000"                       :FF$=FF$+"000111"
  163. 1640 IFF=15THENF$=F$+"000000":FF$=FF$+"000000"
  164. 1650 B=0:F=0:NEXTM
  165. 1660 FORR=1TO24
  166. 1670 IFMID$(F$,R,1)="1"THENG=G+2^(24-R)
  167. 1680 IFMID$(FF$,R,1)="1"THENH=H+2^(24-R)
  168. 1690 NEXTR
  169. 1700 C=INT(G/65536):D=INT((G-(C*65536))/256):E=G-(C*65536+D*256):G=0
  170. 1710 POKEA1+Z+S1,C:POKEA1+Z+1+S1,D:POKEA1+Z+2+S1,E
  171. 1720 C=INT(H/65536):D=INT((H-C*65536)/256):E=H-(C*65536+D*256):H=0
  172. 1730 POKEA1+Z+11+S1,C:POKEA1+Z+12+S1,D:POKEA1+Z+13+S1,E
  173. 1740 Z=Z+3:NEXTK:S1=S1+22:Z=0:PRINT"+":NEXTP
  174. 1750 GOSUB3220:REM SAVE
  175. 1760 GOSUB3360:REM DISK ERROR
  176. 1770 IFA=0THENRUN
  177. 1780 PRINT"  DISK-ERROR [146]: ";A;A$;B;C
  178. 1790 GOSUB3150
  179. 1800 GOTO1750
  180. 1810 REM ******************************
  181. 1820 REM 2 HIRES-SPRITES (NEBENEINAND.)
  182. 1830 REM ******************************
  183. 1840 AZ=2:GOSUB2940
  184. 1850 A$="2 HIRES-SPRITES (NEBENEINAND.)"
  185. 1860 GOSUB3090
  186. 1870 POKEV+21,3
  187. 1880 POKE2040,192:POKE2041,193
  188. 1890 POKEV,160:POKEV+1,150
  189. 1900 POKEV+2,184:POKEV+3,150
  190. 1910 POKEV+39,15:POKEV+40,15
  191. 1920 GOSUB3640
  192. 1930 POKEV+21,0
  193. 1940 GOSUB3050
  194. 1950 I=0 : A1=12288 : A2=12352 : AA=22695
  195. 1960 PRINT"";
  196. 1970 FORTH=0TO20:PRINTTH:NEXT:PRINT"";
  197. 1980 FORT=1TO3
  198. 1990 A=PEEK(A1)
  199. 2000 POKEAA,A
  200. 2010 AA=AA+1:A1=A1+1
  201. 2020 NEXTT
  202. 2030 FORT=1TO3
  203. 2040 B=PEEK(A2)
  204. 2050 POKEAA,B
  205. 2060 AA=AA+1:A2=A2+1
  206. 2070 NEXTT:AA=AA+5:I=I+1:PRINT"+":IFI<21THEN1980
  207. 2080 GOSUB3220
  208. 2090 GOSUB3360
  209. 2100 IFA=0THENRUN
  210. 2110 PRINT"  DISK-ERROR [146]: ";A;A$;B;C
  211. 2120 GOSUB3150
  212. 2130 GOTO2080
  213. 2140 REM ******************************
  214. 2150 REM 2 HIRES-SPRITES (UEBEREINAND.)
  215. 2160 REM ******************************
  216. 2170 AZ=2:GOSUB2940
  217. 2180 A$="2 HIRES-SPRITES (UEBEREINAND.)"
  218. 2190 GOSUB3090
  219. 2200 POKEV+21,3
  220. 2210 POKE2040,192:POKE2041,193
  221. 2220 POKEV,172:POKEV+1,155
  222. 2230 POKEV+2,172:POKEV+3,176
  223. 2240 POKEV+39,15:POKEV+40,15
  224. 2250 GOSUB3640
  225. 2260 POKEV+21,0
  226. 2270 GOSUB3050 : REM FILL MIT 00
  227. 2280 AA=12288 : B=0 : Z=0
  228. 2290 A1=22585
  229. 2300 PRINT"";
  230. 2310 FORTH=0TO20:PRINTTH:NEXT:PRINT"";
  231. 2320 FORTH=21TO41:PRINTTAB(10)TH:NEXT:PRINT"";
  232. 2330 FOR N=0 TO 20
  233. 2340 PRINT"+"
  234. 2350 FORM=0TO2
  235. 2360 A=PEEK(AA+(N*3+M))
  236. 2370 FOR O=14 TO 0 STEP -2
  237. 2380 IF A>=2^(O/2)THEN B=B+2^(O+1):B=B+2^O:A=A-2^(O/2)
  238. 2390 NEXTO:POKEA1+Z,INT(B/256):POKEA1+Z+1,B-PEEK(A1+Z)*256
  239. 2400 Z=Z+2 :B=0 : NEXT M:Z=Z+5
  240. 2410 NEXT N
  241. 2420 AA=12352 : B=0 : Z=0
  242. 2430 A1=22816
  243. 2440 PRINT"";
  244. 2450 FOR N=0 TO 20
  245. 2460 PRINT"+"
  246. 2470 FOR M=0 TO 2
  247. 2480 A=PEEK(AA+(N*3+M))
  248. 2490 FOR O=14 TO 0 STEP -2
  249. 2500 IF A>=2^(O/2)THEN B=B+2^(O+1):B=B+2^O:A=A-2^(O/2)
  250. 2510 NEXTO:POKEA1+Z,INT(B/256):POKEA1+Z+1,B-PEEK(A1+Z)*256
  251. 2520 Z=Z+2 :B=0 : NEXT M:Z=Z+5
  252. 2530 NEXT N
  253. 2540 GOSUB3220:REM SAVE
  254. 2550 GOSUB3360:REM DISK ERROR
  255. 2560 IFA=0THENRUN
  256. 2570 PRINT"  DISK-ERROR [146]: ";A;A$;B;C
  257. 2580 GOSUB3150
  258. 2590 GOTO2540
  259. 2600 REM ******************************
  260. 2610 REM *****  4 HIRES-SPRITES   *****
  261. 2620 REM ******************************
  262. 2630 AZ=4:GOSUB2940
  263. 2640 A$="4 HIRES-SPRITES":GOSUB3090
  264. 2650 POKEV+21,15
  265. 2660 POKE2040,192:POKE2041,193:POKE2042,194:POKE2043,195
  266. 2670 POKEV,136:POKEV+1,119
  267. 2680 POKEV+2,160:POKEV+3,119
  268. 2690 POKEV+4,136:POKEV+5,140
  269. 2700 POKEV+6,160:POKEV+7,140
  270. 2710 POKEV+39,15:POKEV+40,15:POKEV+41,15:POKEV+42,15
  271. 2720 GOSUB3640
  272. 2730 POKEV+21,0
  273. 2740 GOSUB3050:REMFILL MIT 00
  274. 2750 AA=12288 : AB=AA+64:AC=AB+64:AD=AC+64
  275. 2760 A1=22585 :A2=22588:A3=22816:A4=22819
  276. 2770 T=0:Q=0
  277. 2780 PRINT"";
  278. 2790 FORTH=0TO20:PRINTTH:NEXT:PRINT"";
  279. 2800 FORF=0TO20
  280. 2810 PRINT"+"
  281. 2820 FORI=0TO2:
  282. 2830 A=PEEK(AA+Q):B=PEEK(AB+Q):C=PEEK(AC+Q):D=PEEK(AD+Q)
  283. 2840 POKEA1+T,A:POKEA2+T,B:POKEA3+T,C:POKEA4+T,D
  284. 2850 Q=Q+1:T=T+1:NEXT:T=T+8
  285. 2860 NEXT F
  286. 2870 GOSUB3220:REM SAVE
  287. 2880 GOSUB3360:REM DISK ERROR
  288. 2890 IFA=0THENRUN
  289. 2900 PRINT"  DISK-ERROR [146]: ";A;A$;B;C
  290. 2910 GOSUB3150
  291. 2920 GOTO2870
  292. 2930 REM******************************
  293. 2940 REM*****   LOAD - ROUTINE   *****
  294. 2950 REM******************************
  295. 2960 SZ=1:GOSUB3400
  296. 2970 IF AZ=1 THEN RETURN
  297. 2980 SZ=2:GOSUB3400
  298. 2990 IF AZ=2 THEN RETURN
  299. 3000 SZ=3:GOSUB3400
  300. 3010 IF AZ=3 THEN RETURN
  301. 3020 SZ=4:GOSUB3400
  302. 3030 RETURN
  303. 3040 REM******************************
  304. 3050 REM*****    FILL MIT 00     *****
  305. 3060 REM******************************
  306. 3070 FORI=22528 TO 23164 : POKEI,0:NEXT:RETURN
  307. 3080 REM******************************
  308. 3090 REM****  PRINT UEBERSCHRIFT  ****
  309. 3100 REM******************************
  310. 3110 PRINT"[147] ";A$;
  311. 3120 A=LEN(A$):A=A+1:FORI=A TO 39:PRINT" [146]";:NEXT
  312. 3130 RETURN
  313. 3140 REM******************************
  314. 3150 REM*******   GET ANY KEY   ******
  315. 3160 REM******************************
  316. 3170 PRINT"    BITTE DRUECKEN SIE EINE TASTE !!!  [146]";
  317. 3180 POKE2023,160:POKE56295,0
  318. 3190 GETYY$:IFYY$=""THEN 3190
  319. 3200 RETURN
  320. 3210 REM******************************
  321. 3220 REM*** SAVE PRINT-SHOP GRAFIK ***
  322. 3230 REM******************************
  323. 3240 PRINT"[147]":A$="SAVE PRINT-SHOP GRAPHIK":GOSUB3090
  324. 3250 PRINT" NAME (SAVE) :  ";:OPEN1,0:INPUT#1,SN$:CLOSE1:PRINT
  325. 3260 OPEN3,8,2,SN$+",P,W"
  326. 3270 PRINT#3,CHR$(0);CHR$(88);
  327. 3280 FOR I=22528 TO 23164 : PRINT#3,CHR$(PEEK(I));:NEXT
  328. 3290 CLOSE3
  329. 3300 GOSUB3360
  330. 3310 IFA=0THENRETURN
  331. 3320 PRINT"  DISK-ERROR [146]: ";A;A$;B;C
  332. 3330 GETYY$:IFYY$=""THEN3330
  333. 3340 GOTO3220
  334. 3350 REM******************************
  335. 3360 REM*****   DISK-ERROR ???   *****
  336. 3370 REM******************************
  337. 3380 OPEN15,8,15:INPUT#15,A,A$,B,C:CLOSE15
  338. 3390 RETURN
  339. 3400 :
  340. 3410 A$="LOAD ROUTINE ":GOSUB3090
  341. 3420 PRINT"NAME FUER SPRITE #";SZ;:OPEN1,0:INPUT#1,N$:CLOSE1:PRINT
  342. 3430 N$=LEFT$(N$,16)
  343. 3440 PRINT" P[146]ROGRAMM- O. S[146]EQUENTIELLES FILE ?"
  344. 3450 GETT$:IFT$=""THEN3450
  345. 3460 IF T$="P" THEN 3480
  346. 3470 IF T$<>"S" THEN 3450
  347. 3480 OPEN2,8,2,N$+","+T$+",R"
  348. 3490 IF T$="P" THEN GET#2,M$:GET#2,M$
  349. 3500 FORI = 0 TO 62
  350. 3510 GET#2,SP$:IFSP$=""THENSP$=CHR$(0)
  351. 3520 SP=ASC(SP$)
  352. 3530 IF SZ=1 THEN POKE12288+I,SP
  353. 3540 IF SZ=2 THEN POKE12352+I,SP
  354. 3550 IF SZ=3 THEN POKE12416+I,SP
  355. 3560 IF SZ=4 THEN POKE12480+I,SP
  356. 3570 NEXT:CLOSE2
  357. 3580 GOSUB3360 : IF A=0 THEN RETURN
  358. 3590 PRINT"  DISK ERROR [146]: ";A;A$;B;C
  359. 3600 GOSUB3150
  360. 3610 GOTO 2940
  361. 3640 PRINT"    RICHTIGER SPRITE/SPRITES   (J/N)   [146]";
  362. 3650 POKE2023,160:POKE56295,0
  363. 3660 GETG$:IFG$=""THEN3660
  364. 3670 IFG$="J"THENFORI=1984TO2023:POKEI,32:NEXT:RETURN
  365. 3680 IFG$<>"N"THEN3660
  366. 3690 POKEV+21,0:RUN
  367. 3700 REM******************************
  368. 3710 REM*****     DIRECTORY      *****
  369. 3720 REM******************************
  370. 3730 PRINT"[147]"
  371. 3740 OPEN1,8,0,"$":KV=0
  372. 3750 FORI=0TO30:GET#1,A$:B$=B$+A$:NEXT
  373. 3760 PRINT"  ";B$
  374. 3770 GET#1,A$,B$,E$,F$,G$:FORI=0TO26:GET#1,D$:C$=C$+D$:NEXT
  375. 3780 IFF$<=CHR$(0)THENA=0:GOTO3800
  376. 3790 A=ASC(F$)
  377. 3800 IFG$<=CHR$(0)THENB=0:GOTO3820
  378. 3810 B=ASC(G$)
  379. 3820 D=A+256*B
  380. 3830 IFC$="[199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199][199]"THENC$="":GOTO3910
  381. 3840 IFC$="[255][255][255][255][255][255][255][255][255][255][255][255][255][255][255][255][255][255][255][255][255][255][255][255][255][255][255]"THENC$="":GOTO3910
  382. 3850 PRINTD;C$:C$=""
  383. 3860 KV=KV+1:IFKV=22THEN3880
  384. 3870 GOTO3770
  385. 3880 KV=0:GOSUB3150
  386. 3890 PRINT"[145]                                        ";:PRINT"[147]":POKE2023,32
  387. 3900 GOTO3770
  388. 3910 KV=0:GOSUB3150
  389. 3920 CLOSE1:RUN
  390.